linux中查看用户密码及密码破解(加密方式)详解(/etc/shadow文件)

您所在的位置:网站首页 ubuntu 密码 linux中查看用户密码及密码破解(加密方式)详解(/etc/shadow文件)

linux中查看用户密码及密码破解(加密方式)详解(/etc/shadow文件)

2023-11-22 03:36| 来源: 网络整理| 查看: 265

我们知道linux是一个多用户的操作系统,也就是说在linux系统中存储着很多不同用户的用户名及密码。那么如果某一个用户的密码忘记了怎么办呢?

首先我们得知道,在linux系统中,用户名被存放在了/etc/passwd这个文件中;密码存放在/etc/shadow中。知道这两条重要的信息,那么后面的事情就简单很多了。

如果我们要查看某个用户的密码,我们得先登陆为超级用户才可查看:

su root

然后输入超级用户的登陆密码,紧接着,我们需要查看/etc/shadow中对应用户的密码:

cat /etc/shadow | grep ***                #注意,我这里的***为用户名,即需要查看哪个用户名,这里就替换为该用户名

以我这里为例(我去掉了自己的用户名和密码密文): 

 

我们可以看到出来了一串字符,明显不是我们当初用的密码啊,这是怎么回事呢?这是因为为了安全,系统将我们的明文密码进行了加密。既然加密了,我们是不是要进行解密啊 。既然要解密,我们就得知道我们的系统使用了什么加密方式。我们输入以下指令:

authconfig --test | grep hashing

 

可以看到,我这里显示的密码加密方式为MD5,那就好办了,我们可以回到之前的问题了,我们只需要将我们的密文密码进行MD5解密即可得到我们实际的密码了。

我们回到之前的那一串字符串。在这里,我们对刚才的字符串进行一定的解释 。

(我们拿一串字符进行举例)

xxx:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:17969:0:99999:7:::

 上面字符串的格式为(大家有兴趣的朋友可以做详细了解,我们只需要找到我们的密文密码):

{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}

【注】:shadow文件为可读文件,普通用户没有读写权限,超级用户拥有读写权限。如果密码字符串为*,则表示系统用户不能被登入;如果字符串为!,则表示用户名被禁用;如果字符串为空,则表示没有密码。

我们可以使用passwd –d 用户名 清空一个用户的口令密码。

这样我们就清楚了, 上面的一串字符中,“xxx”为用户名,“$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.”即为密文密码。

好了,现在我们拿到了密文密码,接下来我们就可以用它进行MD5解密。

我们可以在网上搜一个在线MD5解密工具,然后将我们的密文密码复制过去,你会惊奇的发现,我们的明文密码就这样拿到了,是不是很有意思呢?感兴趣的朋友可以自行测试。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3